<!DOCTYPE html>
<html lang="zh-CN" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <!-- 面向对象编程思想：根据需求，抽象出具体的特征和行为
    特征为属性 行为为方法，把属性和方法给一个对象，想要产生对象
    就要创建构造函数，通过构造函数创建出来对象，通过调用对象的属性和方法来完成具体的需求

    -->
    <!-- js不是一门面向对象的语言，是一门基于对象的语言，面向过程的编程只能面对规模较小的项目
    但随着社会的发展，现在的软件工程体量越来越大，而要实现这么大的体量的工程
    只有通过面向对象的编程，才能更好的实现，保证了软件的稳定性
    -->
    <script type="text/javascript">
    function Person(name, age, sex, height, weight) {
      this.name = name;
      this.age = age;
      this.sex = sex;
      this.height = height;
      this.weight = weight;
    }
    Person.prototype.eat = function () {
      console.log('我们都要吃大米');
    }
    Person.prototype.sleep = function () {
      console.log('我们都要在房子里睡觉');
    }
    Person.prototype.play = function () {
      console.log('我们都玩过玩具');
    }
    function Student(score) {
      this.score = score;
    }
    Student.prototype = new Person('刘敏',3,'女神',189,30);
    Student.prototype.eat = function () {
      console.log('我们都要吃大米');
    }
    Student.prototype.study = function () {
      console.log('我们学过数学');
    }
    var student = new Student(100);
    // student.eat()
    // student.play();
    console.dir(student.name);
    // 继承特点： 减少代码 节省内存空间 数据共享
    // 怎么继承？
    // 原型：改变指向其他构造函数的实例化来让一个构造函数对象拥有
    // 其他构造函数实例化对象的属性和方法，数据共享，节省内存空间


    </script>
  </body>
</html>
